package com.cmc.cloud.cmclink.doc.vo.blnolocalcostdetailvo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import org.hibernate.validator.constraints.Length;
import java.math.BigDecimal;
import javax.validation.constraints.*;

/**
 * 提单本地费用明细 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 * @author codegen
 */
@Data
public class BlnoLocalCostDetailBaseVO {

        @Schema(description = "外键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6126")
    @NotNull(message = "{BlnoLocalCostDetailBaseVO.blnoid.notnull}")
    private Long blnoId;
	
        @Schema(description = "进出口类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotBlank(message = "{BlnoLocalCostDetailBaseVO.imextype.notblank}")
	@Length(max = 2,message = "{BlnoLocalCostDetailBaseVO.imextype.length}")
    private String imExType;
	
        @Schema(description = "收费代码", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "{BlnoLocalCostDetailBaseVO.chargecode.notblank}")
	@Length(max = 6,message = "{BlnoLocalCostDetailBaseVO.chargecode.length}")
    private String chargeCode;
	
        @Schema(description = "箱号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "{BlnoLocalCostDetailBaseVO.containerno.notblank}")
	@Length(max = 20,message = "{BlnoLocalCostDetailBaseVO.containerno.length}")
    private String containerNo;
	
        @Schema(description = "计费维度 N=按箱计费 Y=按票计费", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "{BlnoLocalCostDetailBaseVO.per.notblank}")
	@Length(max = 1,message = "{BlnoLocalCostDetailBaseVO.per.length}")
    private String per;
	
        @Schema(description = "箱型 按票计费这个字段就是空的", example = "1")
	@Length(max = 2,message = "{BlnoLocalCostDetailBaseVO.cntrtype.length}")
    private String cntrType;
	
        @Schema(description = "箱尺寸 按票计费这个字段就是空的")
	@Length(max = 2,message = "{BlnoLocalCostDetailBaseVO.cntrsize.length}")
    private String cntrSize;
	
        @Schema(description = "货类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotBlank(message = "{BlnoLocalCostDetailBaseVO.cargotype.notblank}")
	@Length(max = 5,message = "{BlnoLocalCostDetailBaseVO.cargotype.length}")
    private String cargoType;
	
        @Schema(description = "件数", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "{BlnoLocalCostDetailBaseVO.quantity.notnull}")
    private Long quantity;
	
        @Schema(description = "费率", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "{BlnoLocalCostDetailBaseVO.rate.notnull}")
    private BigDecimal rate;
	
        @Schema(description = "金额", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "{BlnoLocalCostDetailBaseVO.amount.notnull}")
    private BigDecimal amount;
	
        @Schema(description = "币种", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "{BlnoLocalCostDetailBaseVO.currency.notblank}")
	@Length(max = 3,message = "{BlnoLocalCostDetailBaseVO.currency.length}")
    private String currency;
	
        @Schema(description = "付费方式", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "{BlnoLocalCostDetailBaseVO.payment.notblank}")
	@Length(max = 1,message = "{BlnoLocalCostDetailBaseVO.payment.length}")
    private String payment;
	
    @Schema(description = "供应商代码")
    @Length(max = 50, message = "{BlnoLocalCostBaseVO.vendor.length}")
    private String vendor;

    @Schema(description = "供应商英文名称")
    @Length(max = 200, message = "{BlnoLocalCostBaseVO.vendornameen.length}")
    private String vendorNameEn;
	
        @Schema(description = "记录类型 自动计算auto 手动添加manual VOR", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotBlank(message = "{BlnoLocalCostDetailBaseVO.recordtype.notblank}")
	@Length(max = 10,message = "{BlnoLocalCostDetailBaseVO.recordtype.length}")
    private String recordType;
	
        @Schema(description = "费用发生港", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "{BlnoLocalCostDetailBaseVO.localport.notblank}")
	@Length(max = 5,message = "{BlnoLocalCostDetailBaseVO.localport.length}")
    private String localPort;
	
}
